#pragma once

#include "Log.h"
#include "LogFactory.h"
#include "XMLAttribute.h"
#include "XMLElement.h"
#include "XmlGrammar.h"
#include "Parser.h"
#include "DomainModelCreator.h"
#include "InitializationException.h"
#include "XmlSemanticException.h"
#include <string>
#include "DomValidator.h"

class DomGenerator
{
private:
		Log *  logger;
		XMLElement * readGameConfiguration(string gameConfiguration);
		XMLElement * readLevelConfiguration(string levelConfiguration, string levelValidator);
		Parser * xmlParser;

public:	
		DomGenerator(void);
		~DomGenerator(void);
		/*
		* Lee la configuracion del juego. Recibe como parametro el nombre del archivo de configuracion del juego. 
		* El mismo debe respetar la especificacion del archivo establecida por la catedra. Una vez leido, parseado 
		* y validado el archivo del juego, y los niveles referidos por el mismo, se configuran los objetos de 
		* dominio.
		*/
		void initialize(string configFileName);

};
